﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Persistencia;
using SearchServer.AppManager;

namespace SearchServer.UI
{
    public partial class MantenimientoFSE : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            mensajeError.Text = "";
            Usuario user = (Usuario)Session["Usuario_SIT"];
            if (user!=null && Utilidades.Utilidades.ValidarUsuarioSesion(user))
            {
                BarraNavegacion.Text = Utilidades.Utilidades.CargarLinksVentana(user);
                if (Request.Form["hdnOperacion"] != null)
                {
                    switch (Request.Form["hdnOperacion"])
                    {
                        case "EliminarFse":
                            if (Request.Form["hdnIdFse"] != null)
                            {
                                int idFse = Convert.ToInt32(Request.Form["hdnIdFse"]);
                                FileSystemElementManager fseMgr = FileSystemElementManager.GetInstancia();
                                try
                                {
                                    fseMgr.DesIndexarFileSystemElement(idFse);
                                    mensajeError.Text = "Se ha eliminado correctamente el FileSystemElement seleccionada";
                                }
                                catch (Exception)
                                {
                                    mensajeError.Text = "Se ha producido un error al tratar de eliminar el FileSystemElement.";
                                }
                            }
                            break;
                        case "EditarFse":
                            if (Request.Form["hdnIdFse"] != null)
                            {
                                int idFse = Convert.ToInt32(Request.Form["hdnIdFse"]);
                                Session["FseID"] = idFse;
                                Response.Redirect("AltaFse.aspx", false);

                            }
                            break;
                        case "AgregarFse":
                            Session["FseID"] = null;
                            Response.Redirect("AltaFse.aspx", false);
                            break;
                        default:
                            break;
                    }
                }
                CargarGrillaFSE(user);
            }
            else
            {
                Response.Redirect("Login.aspx", false);
            }

        }

        private void CargarGrillaFSE(Usuario user)
        {
            FileSystemElementManager fseManager = new FileSystemElementManager();
            List<Persistencia.FileSystemElement> resultado = fseManager.ObtenerFileSystemElementsMonitoreados();
            tablaResultados.Text = "";
            //Cabezal de la tabla
            tablaResultados.Text += "<tr>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width: 5%'>";
            tablaResultados.Text += "Id";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width: 20%'>";
            tablaResultados.Text += "Nombre";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width:30%;'>";
            tablaResultados.Text += "Path";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width: 15%'>";
            tablaResultados.Text += "Tamaño";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width: 20%'>";
            tablaResultados.Text += "Fecha creacion";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width: 5%'>";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "<td class='gridHeader' style='text-align: center;width: 5%'>";
            tablaResultados.Text += "</td>";
            tablaResultados.Text += "</tr>";
            //Fila para cada Distribucion
            int Numero = 0;
            foreach (FileSystemElement fse in resultado)
            {
                if (Numero % 2 == 0)
                {
                    //PAR
                    tablaResultados.Text += "<tr class='gridItem'>";
                }
                else
                {
                    //IMPAR
                    tablaResultados.Text += "<tr class='gridAlternatingItem'>";
                }
                tablaResultados.Text += "<td style='text-align:center; padding-left:5px;'>";
                tablaResultados.Text += fse.Id;
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "<td style='text-align:left; padding-left:5px;'>";
                if (fse.Extension.Equals(""))
                    tablaResultados.Text += fse.Nombre;
                else
                    tablaResultados.Text += fse.Nombre + "." + fse.Extension;
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "<td>";
                tablaResultados.Text += fse.Path;
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "<td style='text-align:center; vertical-align:middle;'>";
                if (fse.Is_File)
                {
                    tablaResultados.Text += fse.Tamaño + " bytes";
                }
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "<td style='text-align:center; vertical-align:middle;'>";
                tablaResultados.Text += fse.Fecha_Creacion.ToString();
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "<td valign='middle'>";
                tablaResultados.Text += "<img id='btnEditar_" + fse.Id + "' src='Imagenes/btnEdit.png' onclick='EditarFse(this)' style='cursor: pointer; background-color:transparent;' title='Editar' alt='Editar'/>";
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "<td valign='middle'>";
                tablaResultados.Text += "<img id='btnEliminar_" + fse.Id + "' src='Imagenes/btnEliminar.png' onclick='EliminarFse(this)' style='cursor: pointer; background-color:transparent;' title='Eliminar' alt='Eliminar'/>";
                tablaResultados.Text += "</td>";
                tablaResultados.Text += "</tr>";
                Numero += 1;
            }
        }
    }
}